/*

	plataformas.prg
	plataformas moviles
	
*/

//---------------------------------------------------------------------------------------
PROCESS platafor(x0, y0, direccion, movimiento)
//
// Descripcion del Proceso
//

PRIVATE

	velocidad = 1;

	velx;
	vely;
	
	acumulador;
	sentido;

END

BEGIN

	priority = -1;

	file = fpg_objetos;
	graph = 1;
	
	IF ( direccion == 0 )	// horizontal
	
		velx += velocidad;
		
	ELSE	// vertical
	
		vely += velocidad;
	
	END
	

	LOOP
	
		IF ( acumulador < movimiento )
			acumulador += velocidad;
		ELSE
		
			acumulador = 0;
			
			IF ( direccion == 0 ) // invierte la velocidad
				
				IF ( velx > 0 )
					velx = -velocidad;
				ELSE
					velx = +velocidad;
				END
				
			ELSE
				
				IF ( vely > 0 )
					vely = -velocidad;
				ELSE
					vely = +velocidad;
				END
				
			END
			
		END
		
		x0 += velx;
		y0 += vely;
		
		
		IF ( collision (type jugador) )
		
			IF ( direccion == 0 )
				sobre_plataforma_horiz = true;
			ELSE
				sobre_plataforma_vert  = true;
			END
		
			// publica rodos los valores
			jugador.velx_publica = velx;
			jugador.vely_publica = vely;
			
			jugador.posx_publica = x0;
			jugador.posy_publica = y0;
		
			
		ELSE
		
			sobre_plataforma_horiz = false;
			sobre_plataforma_vert  = false;
			
		END
		
	
		x = x0 - ts.x0;
		y = y0 - ts.y0;
	
		frame;
		
	END

END

